#pragma once
#ifndef MULTI_ROBOT_SAMPLER_H
#define MULTI_ROBOT_SAMPLER_H

#include "basic_typedef.h"
#include "CollisionDetector.h"
#include "MultiRobotCollisionDetector.h"
#include "Sampler.h"

class MultiRobotSampler
{
public:
    MultiRobotSampler(vector<Polygon_2> &robot_polygons, int robot_num, Room &room, MultiRobotCollisionDetector &mr_collision_detector);
    ~MultiRobotSampler(void);

    vector<Conf> generate_sample();

private:

    vector<Conf> generate_no_collision_test();

    MultiRobotCollisionDetector &m_mr_collision_detector;
    vector<Polygon_2>           &m_robot_polygons;
    int                         m_robot_num;
    Room                        &m_room;

    vector<Sampler*>			m_samplers;             // Samplers for each robot
};

#endif